package com.pro.common.service.file.util.sub;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserFilePathParam {
    private String moduleName;                 // 业务模块名，可选，例如 image_processing, avatar
    private String moduleNameTranslate;        // 业务模块名，可选，例如 AI拼图
    private Long userId;              // 用户ID，必填
    private String batchId;           // 批次ID，可选
    private String uuid;              // 文件唯一ID，可选，不传自动生成
    private String originalFilename;  // 原始文件名，可选
    private String templatePhysical = "/{module}/{userId}/{yyyy}/{MM}/{dd}/{batchId}/{fileName}"; // OBS 路径模板
    private String templateLogical = "/{moduleNameTranslate}/{fileName}";  // 逻辑路径模板
    private String url;               // 文件访问 URL
    @Schema(description = "下级用户Id")
    private Long createBy;

    public UserFilePathParam(String moduleName,String moduleNameTranslate, Long userId, String batchId, String uuid, String originalFilename, String url,Long createBy) {
        this.moduleName = moduleName;
        this.moduleNameTranslate = moduleNameTranslate;
        this.userId = userId;
        this.batchId = batchId;
        this.uuid = uuid;
        this.originalFilename = originalFilename;
        this.url = url;
        this.createBy = createBy;
    }
}
